package com.project.springboot.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.i18n.CookieLocaleResolver;

import java.util.Locale;

/**
 * 参考：<a href="https://springdoc.cn/spring-boot-freemarker-i18n/">...</a>
 * description: 国际化配置
 * @author 朱正磊
 * @date 2025-06-13 14:24:33
 */
@Configuration
public class I18nConfiguration {

    /**
     * description: 解析客户端的语言环境，这里我们使用 CookieLocaleResolver，也就是说在用户选择了语言后，
     * 把语言信息存储在客户端浏览器的 Cookie 中，这样的话服务器就不用维护状态了
     * @author 朱正磊
     * @date 2025-06-13 14:46:40
     * @return 返回本地语言环境解析器
     */
    @Bean
    public LocaleResolver localeResolver() {
        // 创建 CookieLocaleResolver
        CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver();
        // 指定 cookie 名称为 _lang
        cookieLocaleResolver.setCookieName("_lang");
        // 设置默认的语言，国别。 Locale.CHINA 也就是 zn_CN
        cookieLocaleResolver.setDefaultLocale(Locale.CHINA);
        // 不允许 JS 读写此 Cookie
        cookieLocaleResolver.setCookieHttpOnly(true);
        // ... 其他设置
        return cookieLocaleResolver;
    }

}
